package com.dark.util;

import java.time.LocalDateTime;
import java.time.temporal.TemporalUnit;

/**
 * ClassName: TimeUtil
 * Description:TimeUtil
 *
 * @author chengluchao
 * @date: 2023/8/26 4:29 PM
 * @since 1.4.35
 */
public class TimeUtil {
    /**
     * 根据指定的时间数量和单位，获取未来的日期时间
     *
     * @param amount 时间数量
     * @param unit   时间单位
     * @return 未来的日期时间
     * // 获取100年后的日期
     * LocalDate futureDate = getFutureDateTime(100, ChronoUnit.YEARS).toLocalDate();
     * System.out.println("100 years later: " + futureDate);
     * <p>
     * // 获取1个月后的日期
     * LocalDate futureMonth = getFutureDateTime(1, ChronoUnit.MONTHS).toLocalDate();
     * System.out.println("1 month later: " + futureMonth);
     * <p>
     * // 获取1天后的日期
     * LocalDate futureDay = getFutureDateTime(1, ChronoUnit.DAYS).toLocalDate();
     * System.out.println("1 day later: " + futureDay);
     * <p>
     * // 获取1分钟后的日期时间
     * LocalDateTime futureMinute = getFutureDateTime(1, ChronoUnit.MINUTES);
     * System.out.println("1 minute later: " + futureMinute);
     * <p>
     * // 获取800毫秒后的日期时间
     * LocalDateTime futureMillis = getFutureDateTime(800, ChronoUnit.MILLIS);
     * System.out.println("800 milliseconds later: " + futureMillis);
     */
    public static LocalDateTime getFutureDateTime(long amount, TemporalUnit unit) {
        return LocalDateTime.now().plus(amount, unit);
    }
}
